Electronic data processing systems comprise several basic units: a central processing unit, a main memory, an input-output unit, and a system controller. The processor performs arithmetic and logic functions, the main memory stores program instructions and data, the I/O unit interfaces peripheral devices and remote users to the system, and the controller coordinates all operations. Typically, as in the Honeywell 6000 system, for example, all I/O operations including main memory access are handled through the system controller.
As the role of data processing has grown larger, the demand has increased for larger capacity computer systems to handle the ever increasing processing requirements. Processing speeds as well as data capacity have increased. One limitation of system size has been the cost of high-speed main memories. Such memories, whether core or semiconductor, are considerably more expensive than larger capacity but slower bulk memories such as magnetic disks or tapes.
Since a user needs only a portion of his program and data in storage for execution at any given time, the concept of program segmentation and memory paging evolved. The Honeywell 6800 system and its predecessors are examples of computer systems which have successfully employed segmentation and paging techniques. With these techniques, extended memories may be employed with main memory with users seeing a "virtual memory" of greater capacity than the real main memory.
By calling only a portion of the user's program and data into execution at any given time, the capacity requirements of main memory are reduced. Further, the use of pages for memory storage permits greater flexibility in memory use since a page may be stored wherever space permits, without the need for storing all related pages together. Such overhead functions as periodic memory compacting, for example, are eliminated. User security is also enhanced through the use of memory paging.
Since pages of data or instructions may be stored wherever available space is found, page tables must be maintained for locating the stored pages. Memory addresses are provided by page table lookup, and by adding an offset to the desired page address if only a portion of the page is to be accessed. Further, a limit or bound may be expressed which further limits the accessible portion of the page. A secure method of accessing memory through use of descriptor-defined base, bounds, and access rights is disclosed in related invention No. 1.
The development and verification of addresses for paged memory, with or without bounds verification, require considerable time which has heretofore limited the system processor time for program execution.
In order to increase the total address space of the paged memory data processing system, an extended address mechanism is provided which permits the accessing by peripherals through an input-output unit of paged memory locations having an address field exceeding that of the address field of the control words used to access such paged memory locations. By so increasing the total address space, the data processing system can accommodate increased data processing loads. According to the present invention this is done without increasing the length of the control words used to access the paged memory locations or the address fields thereof.